package com.mydomain.Bodega;

import com.mydomain.Bodega.*;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.framework.EntityQuery;
import java.util.Arrays;
import java.util.Date;

import javax.persistence.EntityManager;

@Name("auxInvItemList")
public class AuxInvItemList extends EntityQuery<AuxInvItem> {

	private static final String EJBQL = "select auxInvItem from AuxInvItem auxInvItem join auxInvItem.invGrupo g ";

	private static final String[] RESTRICTIONS = {
			"lower(auxInvItem.iteCodigo) like concat(lower(#{auxInvItemList.auxInvItem.iteCodigo}),'%')",
			"lower(auxInvItem.iteDescripcion) like concat(lower(#{auxInvItemList.auxInvItem.iteDescripcion}),'%')",
			"lower(auxInvItem.iteNombre) like concat(lower(#{auxInvItemList.auxInvItem.iteNombre}),'%')",
			"lower(g.gruCodigo) like concat(lower(#{auxInvItemList.auxInvItem.buscadorDeGrupo}),'%') ",		
	
	
	};

	private AuxInvItem auxInvItem = new AuxInvItem();

	public AuxInvItemList() {
		setEjbql(EJBQL);
		setRestrictionExpressionStrings(Arrays.asList(RESTRICTIONS));
		setOrder("auxInvItem.iteNombre");
		setMaxResults(25);
		metodoRegistroDeAuditoria("LISTADO","ITEMS","",getEntityManager());
	}

	public AuxInvItem getAuxInvItem() {
		return auxInvItem;
	}
	
public void metodoRegistroDeAuditoria(String varOperacion, String  varPantalla,String  codigo,EntityManager em){
		
		try {
			
			Subdepartamento subdepartamento = (Subdepartamento) getSessionContext()
			.get("usuarioLogeo");
			Auditoria auditoria = new Auditoria();
			auditoria.setAudPantalla(varPantalla);
			auditoria.setAudOperacion(varOperacion);
			auditoria.setAudFecha((new Date()));
			auditoria.setAudCodigoDeTabla(codigo);
			auditoria.setUsuario(subdepartamento.getUsuario());
			em.flush();
			em.persist(auditoria);
		} catch (Exception e) {
			// TODO: handle exception
		}

	}

}
